<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="layout"
      data-info-popups>
<head>
    <title>Projects</title>
    <!-- http://opengraphprotocol.org/ -->
    <meta property="og:title" content="Spring Projects" />
    <meta property="og:image" th:content="@{/img/spring-by-pivotal.png}" />
    <meta property="og:description" content="The Spring portfolio has many projects, including Spring Framework,
    Spring IO Platform, Spring Cloud, Spring Boot, Spring Data, Spring Security..." />
</head>
<body>
  <div layout:fragment="header-container"></div>
  <div layout:fragment="content" class="container-fluid">
    <article class="main-body--wrapper">
      <h1 class="index-page--title">Main Projects</h1>
      <p class="index-page--subtitle">From configuration to security, web apps to big data &ndash; whatever the infrastructure needs of your application may be, there is a <strong>Spring Project</strong> to help you build it. Start small and use just what you need &ndash; <strong>Spring is modular by design</strong>.</p>
      <section class="projects--wrapper">
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-boot')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-boot"></div>
          </div>
          <div class="project--title">Spring Boot</div>
          <p class="project--description">Takes an opinionated view of building Spring applications and gets you up and running as quickly as possible.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:with="project=${projectMetadata.getProject('spring-framework')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-framework"></div>
          </div>
          <div class="project--title">Spring Framework</div>
          <p class="project--description">Provides core support for dependency injection, transaction management, web apps, data access, messaging and more.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:with="project=${projectMetadata.getProject('spring-cloud-dataflow')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-cloud-dataflow"></div>
          </div>
          <div class="project--title">Spring Cloud Data Flow</div>
          <p class="project--description">An orchestration service for composable data microservice applications on modern runtimes.</p>
        </a>
        <a class="project--container project--container--link"
           th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-cloud')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-cloud"></div>
          </div>
          <div class="project--title">Spring Cloud</div>
          <p class="project--description">Provides a set of tools for common patterns in distributed systems. Useful for building and deploying microservices.</p>
        </a>
        <a class="project--container project--container--link"
           th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-data')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-data"></div>
          </div>
          <div class="project--title">Spring Data</div>
          <p class="project--description">Provides a consistent approach to data access &ndash; relational, non-relational, map-reduce, and beyond.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-integration')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-integration"></div>
          </div>
          <div class="project--title">Spring Integration</div>
          <p class="project--description">Supports the well-known <em>Enterprise Integration Patterns</em> via lightweight messaging and declarative adapters.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-batch')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-batch"></div>
          </div>
          <div class="project--title">Spring Batch</div>
          <p class="project--description">Simplifies and optimizes the work of processing high-volume batch operations.</p>
        </a>
        <a class="project--container project--container--link"
           th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-security')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-security"></div>
          </div>
          <div class="project--title">Spring Security</div>
          <p class="project--description">Protects your application with comprehensive and extensible authentication and authorization support.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-hateoas')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-hateoas"></div>
          </div>
          <div class="project--title">Spring HATEOAS</div>
          <p class="project--description">Simplifies creating REST representations that follow the HATEOAS principle.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:if="${projectMetadata.getProject('spring-restdocs')}"
           th:with="project=${projectMetadata.getProject('spring-restdocs')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-restdocs"></div>
          </div>
          <div class="project--title">Spring REST Docs</div>
          <p class="project--description">Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test or REST Assured.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-amqp')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-amqp"></div>
          </div>
          <div class="project--title">Spring AMQP</div>
          <p class="project--description">Applies core Spring concepts to the development of AMQP-based messaging solutions.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-mobile')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-mobile"></div>
          </div>
          <div class="project--title">Spring Mobile</div>
          <p class="project--description">Simplifies the development of mobile web apps through device detection and progressive rendering options.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-android')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-android"></div>
          </div>
          <div class="project--title">Spring for Android</div>
          <p class="project--description">Provides key Spring components for use in developing Android applications.</p>
        </a>

        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-webflow')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-webflow"></div>
          </div>
          <div class="project--title">Spring Web Flow</div>
          <p class="project--description">Supports building web applications with controlled navigation such as checking in for a flight or applying for a loan.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-ws')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-web-services"></div>
          </div>
          <div class="project--title">Spring Web Services</div>
          <p class="project--description">Facilitates the development of <br/>contract-first SOAP web services.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-ldap')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-ldap"></div>
          </div>
          <div class="project--title">Spring LDAP</div>
          <p class="project--description">Simplifies the development of applications using LDAP using Spring's familiar template-based approach.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-session')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-session"></div>
          </div>
          <div class="project--title">Spring Session</div>
          <p class="project--description">Spring Session provides an API and implementations for managing a user’s session information.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-shell')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-shell"></div>
          </div>
          <div class="project--title">Spring Shell</div>
          <p class="project--description">Provides a powerful foundation for building command-line apps using a Spring-based programming model.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:if="${projectMetadata.getProject('spring-flo')}"
           th:with="project=${projectMetadata.getProject('spring-flo')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-flo"></div>
          </div>
          <div class="project--title">Spring Flo</div>
          <p class="project--description">A JavaScript library that offers a basic embeddable HTML5 visual builder for pipelines and simple graphs.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:if="${projectMetadata.getProject('spring-kafka')}"
           th:with="project=${projectMetadata.getProject('spring-kafka')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-kafka"></div>
          </div>
          <div class="project--title">Spring Kafka</div>
          <p class="project--description">Provides Familiar Spring Abstractions for Apache Kafka.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:if="${projectMetadata.getProject('spring-statemachine')}"
           th:with="project=${projectMetadata.getProject('spring-statemachine')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-spring-statemachine"></div>
          </div>
          <div class="project--title">Spring Statemachine</div>
          <p class="project--description">A framework for application developers to use state machine concepts with Spring applications.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:if="${projectMetadata.getProject('platform')}"
           th:with="project=${projectMetadata.getProject('platform')}">
          <div class="project-logo--container">
            <div class="icon project--logo logo-platform"></div>
          </div>
          <div class="project--title">Spring IO Platform</div>
          <p class="project--description">Provides a cohesive, versioned platform for building modern applications. It is a modular, enterprise-grade distribution that delivers a curated set of dependencies.</p>
        </a>
      </section>
      <h2 class="index-page--title">Community Projects</h2>
      <section class="projects--wrapper project-aggregator top-separator">
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-roo')}">
            <div class="project--title">Spring Roo</div>
            <p class="project--description">Makes it fast and easy to build full Java applications in minutes.</p>
        </a>
        <a class="project--container project--container--link" th:href="${project.siteUrl}" th:with="project=${projectMetadata.getProject('spring-scala')}">
          <div class="project--title">Spring Scala</div>
          <p class="project--description">Brings the power and expressiveness of Scala together with the productivity and deep ecosystem of Spring.</p>
        </a>
      </section>
      <h2 class="index-page--title">Projects in the Attic</h2>
      <section class="projects--wrapper project-aggregator top-separator">
        <a href="https://github.com/spring-projects/spring-flex#readme" class="project--container project--container--link">
          <div class="project--title">Spring BlazeDS Integration</div>
          <p class="project--description">Provides first-class support for using Adobe BlazeDS in Spring-based apps with Adobe Flex front-end clients.</p>
        </a>
        <a href="https://github.com/spring-projects/spring-loaded#readme" class="project--container project--container--link">
          <div class="project--title">Spring Loaded</div>
          <p class="project--description">Boosts development productivity by reloading class file changes&mdash;as you make them&mdash;within your app's JVM.</p>
        </a>
        <a href="https://github.com/spring-projects/rest-shell#readme" class="project--container project--container--link">
          <div class="project--title">REST Shell</div>
          <p class="project--description">Makes writing and testing RESTful applications easier with CLI-based resource discovery and interaction.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:with="project=${projectMetadata.getProject('spring-xd')}">
          <div class="project--title">Spring XD</div>
          <p class="project--description">Simplifies the development of big data applications by addressing ingestion, analytics, batch jobs and data export.</p>
        </a>
        <a th:href="${project.siteUrl}" class="project--container project--container--link" th:with="project=${projectMetadata.getProject('spring-social')}">
          <div class="project--title">Spring Social</div>
          <p class="project--description">Easily connects your applications with third-party APIs such as Facebook, Twitter, LinkedIn, and more.</p>
        </a>
      </section>
    </article>
  </div>
</body>
</html>
